<HTML>

<HEAD>
<TITLE>Nouvelle promotion</TITLE>
<META http-equiv="Content-Type" content="text/html;charset=utf-8" />
<script type="text/javascript"> 
  function valider() 
  { 
    if (confirm('Êtes vous sûr des données que vous avez entré ? \n \n La demarche est définitive et ne peut être inversée.')) 
    { 
      document.getElementById('form-promo').submit(); 
    } 
  } 
</script>
</HEAD>

<BODY>

<div style="text-align: center; width: 800px; border: 1px solid grey; margin: auto;">
<H1>Nouvelle promotion</H1>

<p>Attention : vous vous apprêtez à effectuer une opération sensible sur le système CodeBar.<br/>Toute modification est directement inscrite dans la base de données.<br/>En cas d'erreur, il se peut que revenir en arrière soit très compliqué et très technique.</p>
<p>Il vous faut rentrer le mot de passe de la base de données, le numéro de la nouvelle promotion et la liste des nouveaux élèves.<br/>Comme expliqué plus bas cette liste doit être un copié-collé d'un fichier CSV encodé en UTF-8 dont chaque ligne est sous la forme "login;nom;prénom".<br/>Pour créer ce fichier, je vous recommende d'utiliser <span style="font-weight: bold;">OpenOffice</span>.
</p>
</div>

<BR><BR>

<div style="margin-left: 30px;">
<FORM NAME="csv2sql" METHOD=POST ACTION="" ID="form-promo">
	<INPUT TYPE="HIDDEN" NAME="ref" VALUE="csv2sql">
	<H3>Password de la base de donnée :</H3>	
	<INPUT TYPE="PASSWORD" NAME="pwd" VALUE="" SIZE=50>
	<BR>
        <H3>Numéro de la promotion :</H3>
	<INPUT CLASS="DEFAULT" TYPE="TEXT" NAME="promo" VALUE="" SIZE=50>
	<BR>
	<H3>Données CSV (login;nom;prénom) :</H3>
	Il faut copier ici un fichier CSV encodé au format <span style="font-weight: bold;">UTF-8</span>. Chaque ligne représente un élève et est composée <BR>de trois éléments : login, nom et prénom. Ils doivent venir sous la forme "login;nom;prénom" (sans les guillemets).
	<BR>
	<TEXTAREA CLASS="DEFAULT" NAME="csv_data" ROWS=30 COLS=100></TEXTAREA>
	<BR><BR>
	<BUTTON CLASS="DEFAULT" ONCLICK="valider()" TYPE="BUTTON">Importer la nouvelle promotion</BUTTON>
</FORM>
</div>

<?php

   if($_POST[ref] == "csv2sql") {
     $promo = $_POST[promo];
     if($promo != '') {

     //adapt according to your database
     $db = pg_connect("host=localhost port=5432 dbname=codebar3 user=baradmin password=".$_POST[pwd]) or die('Connection DB CB3 failed');
     //
     
     $csv_data = $_POST[csv_data];
     $csv_array = explode("\n",$csv_data);
     
     $filename = "promo".$promo."_".date(Ymd_His).".csv";
     echo "Archive de l'ajout de la promo : <a href=\"".$filename."\">$filename</a>";
     
     echo "<h2>Liste des numéros de cartes</h2>";
     echo "<table><tbody>";
     echo "<thead><th>id_carte</th><th>login</th><th>nom</th><th>prenom</th></thead>";

     //retrieve the max id_carte
     $query_id_carte = pg_query($db,"SELECT MAX(id_carte) FROM cb_carte;");
     $array_query = pg_fetch_array($query_id_carte);
     $id_carte = $array_query[0]+1;
     
     //Base des queries
     $base_query_carte = "INSERT INTO cb_carte(id_carte,actif) ";
     $base_query_user = "INSERT INTO cb_users(login,id_carte,promo,nom,prenom) ";

     
     //Ouverture du fichier     
     $file = fopen($filename, "a");
     fputs($file, "login;nom;prenom;id_carte\n");

     $last_data_row = count($csv_array);
     for($i = 0; $i < $last_data_row; $i++)
       {
	 $value_query_carte = "VALUES ('".$id_carte."','TRUE');";
	 pg_query($db,$base_query_carte.$value_query_carte);

	 $data_row = explode(";",$csv_array[$i]);
	 $data_row[0] = trim($data_row[0]);
	 $data_row[1] = trim($data_row[1]);
	 $data_row[2] = trim($data_row[2]);
         $login = str_replace("'"," ",$data_row[0]);
         $nom = str_replace("'"," ",$data_row[1]);
         $prenom = str_replace("'"," ",$data_row[2]);
         
         if($login != '' && $nom != '' && $prenom != '')
           {
        	 $value_query_user = "VALUES ('".$login."','".$id_carte."','".$promo."','".$nom."','".$prenom."');";

	         pg_query($db,$base_query_user.$value_query_user);
                 fputs($file, $login.";".$nom.";".$prenom.";".$id_carte."\n");

	         echo "<tr><td>".$id_carte."</td><td>".$login."</td><td>".$nom."</td><td>".$prenom."</td></tr>";
                 $id_carte++;
           }
       }
     echo "</tbody></table>";
     ?> 
     <script type="text/javascript">
       alert("Les nouveaux élèves ont bien été importés ! \n \n Une liste complète des numéros de carte est disponible en bas de la page, ainsi qu'un fichier texte que vous pouvez archiver.");
     </script>

     <?php
     pg_query($db,"ALTER SEQUENCE id_carte_seq RESTART WITH ".$id_carte.";");
   } else {
     ?> 
     <script type="text/javascript">
       alert("Vous n'avez pas rentré de promotion !");
     </script>

     <?php
   }
   }
?>
	 
</BODY>
</HTML>
